Teiid provides a translator for SAP Gateway using the OData protocol. This translator is extension of OData Translator and uses Teiid WS resource adapter for making web service calls. This translator understands the most of the SAP specific OData extensions to the metadata defined in the document SAP Annotations for OData Version 2.0
When the metadata is imported from SAP Gateway, the Teiid models are created to accordingly for SAP specific EntitySet and Property annotations defined in document above.
The following "execution properties" are supported in this translator
Execution Properties
Name |
Description |
Default |
DatabaseTimeZone |
The time zone of the database. Used when fetchings date, time, or timestamp values |
The system default time zone |
SupportsOdataCount |
Supports $count |
true |
SupportsOdataFilter |
Supports $filter |
true |
SupportsOdataOrderBy |
Supports $orderby |
true |
SupportsOdataSkip |
Supports $skip |
true |
SupportsOdataTop |
Supports $top |
true |
Based on how you implemented your SAP Gateway service, if can choose to turn off some of the features above.
If metadata on your service defined "pagable" and/or "topable" as "false' on any table, you must turn off "SupportsOdataTop" and "SupportsOdataSkip" execution-properties in your translator, so that you will not end up with wrong results. SAP metadata has capability to control these in a fine grained fashion any on EnitySet, however Teiid can only control these at translator level.
Sample examples defined at http://scn.sap.com/docs/DOC-31221, we found to be lacking in full metadata in certain examples. For example, "filterable" clause never defined on some properties, but if you send a request $filter it will silently ignore it. You can verify this behavior by directly executing the REST service using a web browser with respective query. So, Make sure you have implemented your service correctly, or you can turn off certain features in this translator by using "execution properties" override. See an example in OData Translator